1. Field
Embodiments relate to conflict management for application directed data placement in storage environments.
2. Background
A storage system may comprise a storage controller that is coupled to a plurality of storage devices. A storage management application that executes in the storage controller may control the plurality of storage devices, and provide access to data stored in the plurality of storage devices to one or more hosts that are coupled to the storage controller. In certain situations, applications that access storage volumes stored in the plurality of storage devices may execute on the storage controller or in the one or more hosts that are coupled to the storage controller.
In an application directed shared storage environment, applications that execute in hosts or the storage controller may provide hints in real-time to guide or dictate storage system functionality such as data placement. Such hints may allow the applications to dynamically configure the storage system to serve the needs of the applications, based on the application's awareness of the end-user performance expectancies, policies, workloads, system events, etc.
The storage management application that executes in the storage controller may act not only based on the hints provided by the applications but also based on the internal system knowledge and policies employed by the storage management application.
In certain situations, a single application may provide conflicting hints for the same data elements (e.g., extents of storage volumes). In other situations, a plurality of applications may provide conflicting hints for the same data elements. As a result there may be poor resource utilization. There may also be wrong placement of the data for some workloads and an inability to meet performance expectations. In operational conflicts, different hints may attempt to move the same extent to different locations to cause a conflict. In intent conflicts, an application may specify different intents for the same extent. It should be noted that intents expressed by applications are converted to operations by the storage controller, and this may cause operational conflicts.
In certain situations, such conflicts may be resolved by certain administrator generated pre-defined policies that are used to break ties and resolve the conflicts. For example, a pre-defined policy may be to prefer Application A over Application B. In conflict resolution mechanisms, the loser in the conflict may have relatively degraded performance and system utilization may suffer.